package org.yelongframework.excel.data;

import java.util.Objects;

import org.yelongframework.lang.Nullable;

/**
 * 工作薄单元格数据
 * 
 * @since 1.0.0
 */
public final class ExcelData {

	/** 工作表索引 */
	private final int sheetIndex;

	/** 工作表数据 */
	private final SheetData sheetData;

	// ==================================================构造器==================================================

	/**
	 * @param sheetIndex 工作表索引
	 * @param sheetData  工作表数据
	 */
	public ExcelData(int sheetIndex, SheetData sheetData) {
		this.sheetIndex = sheetIndex;
		this.sheetData = Objects.requireNonNull(sheetData, "sheetData");
	}

	// ==================================================工作表索引==================================================

	/**
	 * @return 工作表索引
	 */
	public int getSheetIndex() {
		return sheetIndex;
	}

	// ==================================================行索引==================================================

	/**
	 * @return 行索引
	 */
	public int getRowIndex() {
		return sheetData.getRowIndex();
	}

	// ==================================================单元格索引==================================================

	/**
	 * @return 单元格索引
	 */
	public int getColIndex() {
		return sheetData.getColIndex();
	}

	// ==================================================单元格值==================================================

	/**
	 * @return 单元格值
	 */
	@Nullable
	public Object getCellValue() {
		return sheetData.getCellValue();
	}

	// ==================================================转字符串==================================================

	@Override
	public String toString() {
		return "ExcelData [sheetIndex=" + sheetIndex + ", sheetData=" + sheetData + "]";
	}

}
